PROCESO
Un proceso es una parte de código en la cual las instrucciones se ejecutan en secuencia.
Una arquitectura puede contener varios proceso . Todos los proceso se ejecutan en paralelo.
El orden de escritura de las instrucciones afecta los resultados de simulación y síntesis.
Sintaxis del Proceso
Mux: process (A,B,SEL)
begin
if SEL = '1' then
Z <= A;
else
Z <= B;
end if;
end process MUX;
Sentencias secuenciales
Etiqueta
Lista de sensitividad
Eventos en la lista de sensibilidad
Un proceso no se ejecuta continuamente, el proceso empieza a ejecutarse cuando una de las señales en su lista de sensibilidad cambia de valor o, en el lenguaje VHDL tiene un evento.
Mux: process (A,B,SEL)
begin
if SEL = '1' then
Z <= A;
else
Z <= B;
end if;
end process MUX;
Múltiples procesos concurrentes
Mientras que cada proceso ejecuta sus sentencias en secuencia, múltiples procesos interactúan con los demás de manera concurrente al producirse un evento en las señales de la lista de sensibilidad.
Proceso
Proceso
Proceso
Múltiples procesos en una arquitectura
architecture A of E is
begin
— Sentencias Concurrentes
P1: process
begin
— Sentencias Secuenciales
end process P1;
— Sentencias Concurrentes
P2: process
begin
— Sentencias Secuenciales
end process P2;
— Sentencias Concurrentes
end A;
Proceso 1
Proceso 2
Ejecución de procesos
Cuando estas 2 señales son concurrentes, definen 2 drivers sobre la señal Z.
Concurrente: 2 drivers
architecture CONCURRENT of MULTIPLE is
signal Z,A,B,C,D: std_logic;
begin
Z <= A & B;
Z <= C & D;
end CONCURRENT;
?
A
B
C
D
Z
Ejecución de procesos
Cuando estas 2 señales son secuenciales, el valor con el cual la señal es actualizada es el último valor que se le asigna durante el proceso de ejecución.
Secuencial: 1 driver, última asignación
architecture SEQUENTIAL of MULTIPLE is
signal Z,A,B,C,D: std_ulogic;
begin
process (A,B,C,D)
begin
Z <= A & B;
Z <= C & D;
end process;
end SEQUENTIAL ;
C
D
Z
Señal actualizada cuando el proceso se suspende
Las señales asignadas dentro de un proceso son actualizadas hasta cuando el proceso termina y queda suspendido.
architecture SEQUENTIAL of MULTIPLE is
signal Z,A,B,C,D: std_ulogic;
begin
process (A,B,C,D)
begin
Z <= A & B;
Z <= C & D;
end process;
end SEQUENTIAL ;
Noción de process
Un process es una parte de código en la cual las instrucciones se ejecutan en secuencia.
Una arquitectura puede contener varios process .
Todos los process se ejecutan en paralelo.
El orden de escritura de las instrucciones afecta los resultados de simulación y síntesis.
Implementación de Procesos
Lógica combinatoria.
Lógica sincrónica.
Lógica sincrónica con inicialización asincrónica.
Procesos dormidos, se les llama así a los procesos mientras
las señales que los activan no cambian su estado.
Estructura de Proceso
[ etiqueta: ] process ( lista de sensibilidad )
— declaraciones
— variables eventuales
Begin
— parte operatoria
— instrucciones secuenciales
— (if, case, loop)
End process;
Lista de sensibilidad, cambia la asignación de señales asignadas en el proceso.
Metodología de Procesos.
Lista de sensibilidad consistente.
Dominación de comportamiento e implementación de la lógica.
Diseños sintetizados, sin asincronismos.
Proceso Combinatorio
[ etiqueta: ] process ( lista de sensibilidad )
— declaraciones
Begin
— instrucciones secuenciales
— (if, case, loop)
End process [ etiqueta];
Lista de sensibilidad con señales que activan el proceso.
Parte declaratoria que puede contener variables.
Variable con ámbito de proceso.
Ejemplo Combinatorio.
Mux: process (A, B,SEL )
Begin
if SEL=‘0’
then SALIDA<=A;
else SALIDA<=B;
end if;
End process;
Estructura Proceso Síncrono
[ etiqueta: ] process
— declaraciones
Begin
wait until (CK’ event and CK=‘1’);
End process [etiqueta];
El flanco de subida provoca el cambio en el estado.
wait until evalúa la condición.
Ejemplo síncrono.
Process
Begin
wait until ( CK’ event and CK=‘1’ );
COUNT <= COUNT + 1;
End process;
COUNT es construida por flip flops
No debe haber señales combinatorias.
Proceso Síncrono
[ etiqueta: ] process ( CK )
— declaraciones
Begin
if (CK’ event and CK=‘1’)
then –instrucciones secuenciales.
end if;
End process [etiqueta];
[ etiqueta: ] process ( CK , RST)
— declaraciones
Begin
if RST=‘1’
then –acción asíncrona
elseif (CK’ event and CK=‘1’)
then –instrucciones secuenciales.
end if;
End process [etiqueta];
Proceso Síncrono con Inicialización Asíncrona
Cambio de prioridad por condición asíncrona
Ejemplo Síncrono
Process ( CK )
Begin
if ( CK’ event and CK=‘1’ )
then COUNT <= COUNT + 1;
end if;
End process;
COUNT es construida por flip flops
Todas las señales deben ser combinatorias.
SENSITIVIDAD
La sensitividad es el conjunto de entradas de un bloque que cada vez que tengan un cambio en su estado activan el sistema y producen una salida.
Página anterior | Volver al principio del trabajo | Página siguiente |